package com.example.imchat.model;

import android.content.Context;

import com.example.imchat.model.bean.UserInfo;
import com.example.imchat.model.dao.DBManager;
import com.example.imchat.model.dao.UserAccountDao;

import java.security.PublicKey;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/*lee
* 数据模型层全局类
* */
public class Model {
    private Context mContext;
    private UserAccountDao userAccountDao;
    private DBManager dbManager;
    private ExecutorService executorService = Executors.newCachedThreadPool();
    //创建对象
    private static Model model = new Model();
    //构造私有化
    private Model() {

    }

    //获取单例对象
    public static Model getInstance(){
        return   model;
    }

    //初始化得方法
    public void init(Context context){
        mContext = context;

        //创建用户账号数据库得操作类对象
        userAccountDao = new UserAccountDao(mContext);

        //开启全局监听
        EventListener eventListener = new EventListener(mContext);
    }
    //获取全局线程池对象
    public  ExecutorService getGlobalThreadPool(){
        return executorService;
    }
    //用户登录成功后得处理
    public void loginSuccess(UserInfo account) {

        //校验
      if (account == null){
          return;
      }
      if (dbManager != null){
          dbManager.close();
      }
       dbManager = new DBManager(mContext,account.getName());
    }


    public DBManager getDbManager(){
        return dbManager;
    }

    //获取用户账号数据库得操作类对象
    public UserAccountDao getUserAccountDao(){
        return  userAccountDao;
    }
}
